﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

//int main()
//{
//	int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };
//	int* p = &arr[0];
//	printf("%zu\n",sizeof(p));
//	printf("%zu\n", sizeof(arr));
//	return 0;
//}

//int main()
//{
//	int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };
//	printf("&arr     = %p\n", &arr);
//	printf("&arr[0]  = %p\n", &arr[0]);
//	printf("arr      = %p\n", arr);
//	return 0;
//}


//int main()
//{
//	int arr[10] = { 0,1,2,3,4,5,6,7,8,9 };
//	printf("&arr       = %p\n", &arr);
//	printf("&arr[0]    = %p\n", &arr[0]);
//	printf("arr        = %p\n", arr);
//	printf("&arr+1     = %p\n", &arr+1);
//	printf("&arr[0]+1  = %p\n", &arr[0]+1);
//	printf("arr+1      = %p\n", arr+1);
//	return 0;
//}


//int main()
//{
//	int arr[5] = { 1,2,3,4,5 };
//	int* p = arr;
//	//可以用指针访问数组了
//	int i = 0;
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	for (i = 0; i < sz; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	printf("\n");
//	for (i = 0;i < sz;i++)
//	{
//		printf("%d ", *(p + i));
//	}
//	return 0;
//}

//void Count(int arr[]);
//
//int main()
//{
//	int arr[] = { 0,1,2,3,4,5,6,7,8,9 };//十个元素
//	Count(arr);
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	printf("%d\n", sz);
//	return 0;
//}
//
//void Count(int arr[])
//{
//	int num = sizeof(arr) / sizeof(arr[0]);
//	printf("%d\n", arr);
//	printf("%d\n", arr + 1);
//	printf("%d\n", num);
//}

//void bubble_sort(int arr[], int sz);
//
//int main()
//{
//	int arr[] = { 0,4,5,8,6,7,5,8,4,4 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	bubble_sort(arr,sz);//升序排序
//	int i = 0;
//	for (i = 0;i < sz;i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	return 0;
//}
//
//void bubble_sort(int arr[], int sz)
//{
//	int i, j = 0;
//	for (i = 0;i < sz-1;i++)//循环9次，除最后一位，每一位循环一次
//	{
//		int flag = 1;//放一个标志，假定已经有序了
//		for (j = 0;j < sz-i-1;j++)//开始7次，每次减1
//		{
//			if (arr[j] > arr[j + 1])
//			{
//				flag = 0;//如果这么多次里面有交换，就反驳假定
//				int temp = 0;
//				temp = arr[j];
//				arr[j] = arr[j+1];
//				arr[j+1] = temp;
//			}
//		}
//		if (flag)//如果假定没有被反驳，证明确实有序，退出循环
//		{
//			break;
//		}
//	}
//}


//int main()
//{
//	int a = 0;
//	int* pa = &a;
//	int** ppa = &pa;
//	printf("%d\n", a);
//	printf("%p\n", pa);
//	printf("%p\n", ppa);
//}


//int main()
//{
//	int arr[5] = { 0,1,2,3,4 };
//	int* arr_p[5] = { &arr[0],&arr[1],&arr[2],&arr[3],&arr[4] };
//}


int main()
{
	int arr1[] = { 1,2,3,4,5 };
	int arr2[] = { 2,3,4,5,6 };
	int arr3[] = { 3,4,5,6,7 };
	//数组名是数组⾸元素的地址，类型是int*的，就可以存放在parr数组中 
	int* parr[3] = { arr1, arr2, arr3 };
	int i = 0;
	int j = 0;
	for (i = 0; i < 3; i++)
	{
		for (j = 0; j < 5; j++)
		{
			printf("%d ", parr[i][j]);
		}
		printf("\n");
	}
	return 0;
}